package ace.module.product.core.impl.manager;

import ace.cmp.data.spring.data.jdbc.querydsl.rsql.core.model.SaveContext;
import ace.cmp.data.spring.data.jdbc.querydsl.rsql.core.model.SaveListContext;
import ace.module.product.api.model.input.PmsProductDetailSaveInput;
import ace.module.product.core.impl.dao.entity.PmsProduct;
import ace.module.product.core.impl.dao.entity.PmsProductSku;
import java.util.List;
import ace.module.common.core.impl.manager.EntityOfAppManager;
import ace.module.product.core.impl.dao.entity.PmsProductDetail;
import ace.module.product.api.model.dto.PmsProductDetailDto;

/**
* 商品详情 spring data jdbc querydsl rsql manager.
*
* @author Caspar
*/
public interface PmsProductDetailManager extends EntityOfAppManager<PmsProductDetail, Long, PmsProductDetailDto> {

  SaveListContext<PmsProductDetail> assembleProductSaveListContext(List<PmsProductDetailSaveInput> pmsProductDetailSaveInputs, SaveContext<PmsProduct> pmsProductSaveContext);

  SaveContext<PmsProductDetail> assembleProductSaveContext(PmsProductDetailSaveInput detailInput, SaveContext<PmsProduct> pmsProductSaveContext);

  SaveListContext<PmsProductDetail> assembleProductSkuSaveListContext(List<PmsProductDetailSaveInput> pmsProductDetailSaveInputs, SaveContext<PmsProductSku> pmsProductSkuSaveContext);

  SaveContext<PmsProductDetail> assembleProductSkuSaveContext(PmsProductDetailSaveInput detailInput,
      SaveContext<PmsProductSku> pmsProductSkuSaveContext);
}